#ifndef VENDOR_ECARX_XMA_CONNECTIVITY_UTILS_H
#define VENDOR_ECARX_XMA_CONNECTIVITY_UTILS_H

#include <vendor/ecarx/xma/connectivity/1.0/types.h>

#include "rtxsrc/rtxCommon.h"
#include "asn/CommonElements.h"
#include "asn/ESIMConnectionStatus.h"
#include "asn/OpWLANAPConnDev.h"
#include "asn/OpWLANAPSSID.h"
#include "asn/OpWLANSTAStatus.h"
#include "asn/WLANMode.h"
#include "asn/WLANSTAConnect.h"
#include "asn/WLANSTAConnectList.h"
#include "asn/WLANSTAForgetRememberedNetwk.h"
#include "asn/WLANSTARememberedNetwks.h"


namespace vendor
{
namespace ecarx
{
namespace xma
{
namespace connectivity
{
namespace V1_0
{
namespace implementation
{

using ::android::sp;
using ::android::wp;
using ::android::hardware::Void;
using ::android::hardware::Return;
using ::android::hardware::hidl_vec;
using ::android::hardware::hidl_array;
using ::android::hardware::hidl_string;

using ::vendor::ecarx::xma::connectivity::V1_0::WifiState;
using ::vendor::ecarx::xma::connectivity::V1_0::SoftApState;
using ::vendor::ecarx::xma::connectivity::V1_0::StatusCode;
using ::vendor::ecarx::xma::connectivity::V1_0::ESIMConnectionStatus_HAL;
using ::vendor::ecarx::xma::connectivity::V1_0::ESIMOperatorStatus_HAL;
using ::vendor::ecarx::xma::connectivity::V1_0::DataConnectionStatus_HAL;
using ::vendor::ecarx::xma::connectivity::V1_0::ESIMTrafficData_HAL;
using ::vendor::ecarx::xma::connectivity::V1_0::NetworkAvailableStatus;
using ::vendor::ecarx::xma::connectivity::V1_0::WLAN_ModeCommand;
using ::vendor::ecarx::xma::connectivity::V1_0::FrequencyBand;
using ::vendor::ecarx::xma::connectivity::V1_0::ConnDevStatus;
using ::vendor::ecarx::xma::connectivity::V1_0::ConnDevInfo;
using ::vendor::ecarx::xma::connectivity::V1_0::SecurityType;
using ::vendor::ecarx::xma::connectivity::V1_0::ConnectedResult;
using ::vendor::ecarx::xma::connectivity::V1_0::WlanStaConnectFailureReasonCode;
using ::vendor::ecarx::xma::connectivity::V1_0::RememberedAPInfo;
using ::vendor::ecarx::xma::connectivity::V1_0::AvailableAPInfo;
using ::vendor::ecarx::xma::connectivity::V1_0::CurrentAPInfo;
using ::vendor::ecarx::xma::connectivity::V1_0::OnOffStatus;
using ::vendor::ecarx::xma::connectivity::V1_0::GenericOkStatus;
using ::vendor::ecarx::xma::connectivity::V1_0::ErrorCode;
using ::vendor::ecarx::xma::connectivity::V1_0::ESIMConnectionStatusResponseValue;
using ::vendor::ecarx::xma::connectivity::V1_0::ESIMConnectionStatusNotificationValue;
using ::vendor::ecarx::xma::connectivity::V1_0::WLANAPSSIDResponseValue;
using ::vendor::ecarx::xma::connectivity::V1_0::WLANAPConnDevResponseValue;
using ::vendor::ecarx::xma::connectivity::V1_0::WLANAPConnDevNotificationValue;
using ::vendor::ecarx::xma::connectivity::V1_0::WLANSTAConnectResponseValue;
using ::vendor::ecarx::xma::connectivity::V1_0::WLANSTAStatusResponseValue;
using ::vendor::ecarx::xma::connectivity::V1_0::WLANSTAStatusNotificationCyclicValue;


class Utils
{
    public:
        static void ASN1T2ESIMConnectionStatusResponseValue(
            const ASN1T_OpESIMConnectionStatus_Response&, ESIMConnectionStatusResponseValue&);

        static void ASN1T2ESIMConnectionStatusNotificationValue(
            const ASN1T_OpESIMConnectionStatus_Notification&, ESIMConnectionStatusNotificationValue&);

        static void ASN1T2WLAN_ModeCommand(const ASN1T_OpWLANMode_Response&, WLAN_ModeCommand&);

        static void ASN1T2WLANSTAConnectResponseValue(const ASN1T_OpWLANSTAConnect_Response&, WLANSTAConnectResponseValue&);

    private:

};

} // implementation
} // V1_0
} // connectivity
} // xma
} // ecarx
} // vendor

#endif  // VENDOR_ECARX_XMA_CONNECTIVITY_UTILS_H
